/**
 * @author 20111011 by hzx
 * @class EditUserInfoSmsForm
 * @extends Ext.form.FormPanel
 * @description 用户信息表单
 */
EditUserInfoSmsForm = Ext.extend(Ext.form.FormPanel, {
	myid : "myid",
	myReadOnly : false, // 自定义属性是否只读
	myDisabled : false, // 自定义属性是否禁用
	addMode : false, // 增加模式
	// upLoadFileWin : null, // 照片上传窗体
	comboStoreUt : null, // 下拉列表框数据源(用户类型)
	comboStoreSex : null, // 下拉列表框数据源(性别)
	comboStoreLy : null, // 下拉列表框数据源(路由)
	comboStoreSh : null, // 下拉列表框数据源(是否需要审核)
	comboStoreSf : null, // 下拉列表框数据源(收费方式)
	comboStoreTrue : null, // 下拉列表框数据源(True)
	comboStoreRf : null, // 下拉列表框数据源(是否显示接收的信息)
	// 构造方法
	constructor : function() {
		// 照片上传窗体
		// this.upLoadFileWin = new UpLoadFileWindow();
		
		// 下拉列表框数据源(用户类型)
		this.comboStoreUt = new Ext.data.JsonStore({
					url : "dataDict.do",
					baseParams : {
						"operator" : "showDataDictByKey",
						"sekey" : "user_type"
					},
					fields : ["datakey", "value","remark"],
					autoLoad : true
				});
		// 下拉列表框数据源(性别)
		this.comboStoreSex = new Ext.data.JsonStore({
					url : "dataDict.do",
					baseParams : {
						"operator" : "showDataDictByKey",
						"sekey" : "sex"
					},
					fields : ["datakey", "value","remark"],
					autoLoad : true
				});
		this.comboStoreLy = new Ext.data.JsonStore({
			url : "dataDict.do",
			baseParams : {
				"operator" : "showDataDictByKey",
				"sekey" : "route"
			},
			fields : ["datakey", "value","remark"],
			autoLoad : true
		});
//		// 下拉列表框数据源(路由ID)
//		this.comboStoreLy = new Ext.data.JsonStore({
//					url : "route.do",
//					baseParams : {
//						"operator" : "showAllRouteByPage",
//						"start" : "0",
//						"limit" : "1000"
//					},
//					fields : ["id","routeName"],
//					autoLoad : true
//				});
		// 下拉列表框数据源(审核)
		this.comboStoreSh = new Ext.data.JsonStore({
					url : "dataDict.do",
					baseParams : {
						"operator" : "showDataDictByKey",
						"sekey" : "check_flag"
					},
					fields : ["datakey", "value","remark"],
					autoLoad : true
				});
		// 下拉列表框数据源(收费模式)
		this.comboStoreSf = new Ext.data.JsonStore({
					url : "dataDict.do",
					baseParams : {
						"operator" : "showDataDictByKey",
						"sekey" : "fee_mode"
					},
					fields : ["datakey", "value","remark"],
					autoLoad : true
				});
		// 下拉列表框数据源(True)
		this.comboStoreTrue = new Ext.data.JsonStore({
					url : "dataDict.do",
					baseParams : {
						"operator" : "showDataDictByKey",
						"sekey" : "true"
					},
					fields : ["datakey", "value","remark"],
					autoLoad : true
				});
		// 下拉列表框数据源(是否显示接收的信息)
		this.comboStoreRf = new Ext.data.JsonStore({
					url : "dataDict.do",
					baseParams : {
						"operator" : "showDataDictByKey",
						"sekey" : "recv_flag"
					},
					fields : ["datakey", "value","remark"],
					autoLoad : true
				});

		// 拷贝父类的构造方法到当前对象
		EditUserInfoSmsForm.superclass.constructor.call(this, {
			id : this.myid,
			border : false, // 不要边框
			fileUpload : true, // 允许上传
			autoScroll : true,
			bodyStyle : "backgroundColor:#DFE8F6;",
			items : [{
				xtype : "panel",
				frame : true,
				border : false,
				bodyStyle : "backgroundColor:#DFE8F6;",
				items : [{
					layout : "column",
					border : false,
					items : [{
								columnWidth : .33,
								labelWidth : 55,
								layout : "form",
								defaults : {
									xtype : "textfield",
									allowBlank : false, // 不允许为空
									anchor : "90%"
								},
								items : [{
											fieldLabel : "用户ID(登录使用)",
											name : "uis.userId",
											readOnly : true
										},{
											
											fieldLabel : "密码",
											inputType : "password",
											name : "userPass1",
											disabled : !this.addMode,
											allowBlank : (!this.addMode), // 不允许为空
											value : "******"
										}, {
											fieldLabel : "确认密码",
											inputType : "password",
											name : "userPass12",
											invalidText : "两次输入的密码不一致", // 验证失败出现的提示
											allowBlank : (!this.addMode), // 不允许为空
											disabled : !this.addMode,
											value : "******"
										},{
											xtype : "combo",
											editable : false,
											fieldLabel : "路由ID",
											emptyText : "请选择路由ID", // 为空显示信息
											readOnly : this.myReadOnly, // 自定义属性(是否只读)
											disabled : this.myDisabled, // 自定义属性(是否禁用)
											hiddenName : "uis.routeIdStr",
											triggerAction : "all", // 显示所有数据
											displayField : "remark", // 要显示的值
											store : this.comboStoreLy
										}, {
											fieldLabel : "手机",
											name : "uis.cellphone",
											invalidText : "手机号码长度必须为11位",
											validator : function(){ 
												return /^1\d{10}$/gi.test(this.getValue());
											}
										}]
							}, {
								columnWidth : .33,
								labelWidth : 55,
								layout : "form",
								defaults : {
									xtype : "textfield",
									allowBlank : false, // 不允许为空
									anchor : "90%"
								},
								items : [{
											fieldLabel : "姓名",
											name : "uis.userName"
										}, {
											xtype : "combo",
											editable : false,
											fieldLabel : "需要审核",
											emptyText : "请选择是否需要审核", // 为空显示信息
											readOnly : this.myReadOnly, // 自定义属性(是否只读)
											disabled : this.myDisabled, // 自定义属性(是否禁用)
											hiddenName : "uis.checkFlagStr",
											triggerAction : "all", // 显示所有数据
											displayField : "remark", // 要显示的值
											store : this.comboStoreSh
										},{
											allowBlank : true, // 允许为空
											fieldLabel : "电话",
											name : "uis.telephone"
										}, {
											allowBlank : true, // 允许为空
											fieldLabel : "电子邮件",
											name : "uis.email"
										}, {
											allowBlank : true, // 允许为空
											xtype : "textfield",
											name : "uis.discount",
											fieldLabel : "扣量区域",
											invalidText :"格式有误,例如：10%~20%;70%~80%;",
											validator : function(){
												if(this.getValue() == ""){ //如果填写空则不自动扣量
													return true;
												}
												if (/^((\d{1,3}%)~(\d{1,3}%);)+$/gi.test(this.getValue())){ //如果输入的值是10 100的格式 则进行校验两个值的大小
													return true;
//													tstr = this.getValue().split(' ');
//													if (tstr.length == 1){
//														tstr =this.getValue().split(',')
//													}
//													if(tstr.length != 2){
//														return false;
//													}
//													a = parseInt(tstr[0]);
//													b = parseInt(tstr[1]);
//													return a<=100 && b <= 100 && a <= b;
												}
												return false;
											}
										} ]
							},{
								columnWidth : .33,
								labelWidth : 55,
								layout : "form",
								defaults : {
									xtype : "textfield",
									allowBlank : false, // 不允许为空
									anchor : "90%"
								},
								items : [{
											xtype : "combo",
											editable : false,
											fieldLabel : "收费方式",
											emptyText : "请选择", // 为空显示信息
											hiddenName : "uis.feetypeStr",
											triggerAction : "all", // 显示所有数据
											displayField : "remark", // 要显示的值
											store : this.comboStoreSf
										}, {
											xtype : "combo",
											editable : false,
											fieldLabel : "是否显示真实数据",
											emptyText : "请选择", // 为空显示信息
											hiddenName : "uis.recordFlagStr",
											triggerAction : "all", // 显示所有数据
											displayField : "remark", // 要显示的值
											store : this.comboStoreTrue
										},{
											xtype : "combo",
											editable : false,
											fieldLabel : "接收的信息",
											emptyText : "请选择是否显示接收的信息", // 为空显示信息
											hiddenName : "uis.recvFlagStr",
											triggerAction : "all", // 显示所有数据
											displayField : "remark", // 要显示的值
											store : this.comboStoreRf
										}, {
											xtype : "combo", // 下拉列表框
											editable : false,
											fieldLabel : "性别",
											emptyText : "请选择性别",
											readOnly : this.myReadOnly, // 自定义属性(是否只读)
											disabled : this.myDisabled, // 自定义属性(是否禁用)
											triggerAction : "all", // 显示所有数据
											hiddenName : "uis.sexStr",
											displayField : "remark", // 要显示的值
											store : this.comboStoreSex
										},{
											fieldLabel : "地址",
											name : "uis.address",
											allowBlank : true //允许为空
										}]
									}]
							},{
										layout : "form",
										border : false,
										labelWidth : 55,
										allowBlank : true,
										items : [{
													frame : true,
													xtype : "textfield",
													name : "uis.remark",
													fieldLabel : "备注",
													anchor : "95%"
												},{
													name : "uis.password",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.parentId",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.userType",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.userTypeStr",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.parentId",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.sex",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.status",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.routeId",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.feetype",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.recordFlag",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.recvFlag",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.smscount",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.price",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.balance",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.createUserid",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.updateUserid",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.oldMobile",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.lastLoginStr",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.createDateStr",
													xtype : "textfield",
													hidden : true
												},{
													name : "uis.updateDateStr",
													xtype : "textfield",
													hidden : true
												}]
								}]
			}]
		});
//		this.comboStoreSh.on('load',function(store,record,opts){  
//			var combo = Ext.getCmp("combo_sh_edit");  
//			var firstValue = store.getRange()[0].data.value;//这种方法可以获得第一项的值  
//			for (var i=0;i<store.getRange().length;i++){
//				if(store.getRange()[i].data.value == combo.value){
//					firstValue = store.getRange()[i].data.value;
//				}
//			}
//			alert(store.getRange().length);
//			alert(store.getRange()[0].data.value);

//			combo.setValue(firstValue);//选中  
//		});
	},
	/**
	 * 用户角色表单提交方法
	 * 
	 * @param {}
	 *            _url 提交的url
	 */
	mySubmit : function(_url) {
		this.getForm().submit({
					url : _url,
					waitTitle : "数据传输",
					waitMsg : "数据传输中,请稍等...",
					// 成功回调方法
					success : this.onSuccess,
					// 失败回调方法
					failure : this.onFailure,
					// 作用域
					scope : this

				})
	},

	/**
	 * 请求成功的回调方法
	 * 
	 * @param {}
	 *            _form
	 * @param {}
	 *            _action
	 */
	onSuccess : function(_form, _action) {
		if (_action.result.success == true) {
			Ext.Msg.alert("系统消息", "修改成功");
			
			// 调用当前组建的父容器的onCloseWinClick()事件
//			this.ownerCt.onCloseWinClick();
			/**
			 * _urgp 是 smsfactory.whitelist.white_list.jsp
			 * 中WhiteListPanel类的实例
			 */
			_urgp.getStore().reload();
			return;
		}
	},

	/**
	 * 请求失败的回调方法
	 * 
	 * @param {}
	 *            _form
	 * @param {}
	 *            _action
	 */
	onFailure : function(_form, _action) {
		Ext.Msg.alert("系统消息", _action.result["errorMsg"]);
	},

	/**
	 * 获取form的值
	 * 
	 * @return {}
	 */
	getFormValues : function() {
		return new Ext.data.Record(this.getForm().getValues());
	},

	/**
	 * 给表单设置值
	 * 
	 * @param {}
	 *            _record
	 */
	setFormValues : function(_record) {
		this.getForm().loadRecord(_record);
	},

	/**
	 * 重置表单
	 */
	reset : function() {
		this.getForm().reset();
	}
});
